home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / util / arc / LZXConv_v1_0a.lha / Lx.e < prev    next >
Text File  |  1995-04-17  |  3KB  |  133 lines

  1. /*  Unpack File for Spot. Or other prog who need it
  2.     
  3.     Created By DarkSpirit 1995
  4.  
  5.  
  6.     |\__/,|   (`\  NetMail #1: 2:200/136.17
  7.   _.|o o  |_   ) ) NetMail #2: 2:200/113.22
  8. -(((---(((---------AmigaNet: 39:163/101.1
  9. E-Mail: Cat@p22.dennis.ct.se
  10. E-Mail: Cat@p10.kockens.ct.se
  11.                                   */
  12. MODULE 'dos/dos'
  13. OBJECT suf
  14.     type[30]:ARRAY OF CHAR
  15. ENDOBJECT
  16. PROC main()
  17.     DEF fh, cmd[10]:ARRAY OF suf,buf,x=0,comand[128]:STRING
  18.     CopyMem('UnZip',cmd[1].type,10)
  19.     CopyMem('LHA x',cmd[2].type,10)
  20.     CopyMem('Arc x',cmd[3].type,10)
  21.     CopyMem('LZX x',cmd[4].type,10)
  22.     CopyMem('ARJ x',cmd[5].type,10)
  23.     CopyMem('ZOO -extract',cmd[6].type,15)
  24.     banner()
  25.     chk(arg)
  26.     fh:=Open(arg,MODE_OLDFILE)
  27.     IF fh=0
  28.             WriteF('Error opening file:\s\n',arg)
  29.             RETURN 1
  30.     ENDIF
  31.     buf:=New(10)
  32.     Read(fh,buf,10)
  33.     Close(fh)
  34.     MOVE.L  buf,A0
  35.     CMP.W   #"PK",(A0)
  36.     BNE     notzip
  37.     x:=1
  38. notzip:
  39.     CMP.L   #"-lh5",2(A0)
  40.     BNE     notlha5
  41.     x:=2
  42. notlha5:
  43.     CMP.L   #"-lh0",2(A0)
  44.     BNE     notlha6
  45.     x:=2
  46. notlha6:
  47.     CMP.L   #"-lh1",2(A0)
  48.     BNE     notlha7
  49.     x:=2
  50. notlha7:
  51.     CMP.L   #"-lh2",2(A0)
  52.     BNE     notlha8
  53.     x:=2
  54. notlha8:
  55.     CMP.L   #"-lh3",2(A0)
  56.     BNE     notlha9
  57.     x:=2
  58. notlha9:
  59.     CMP.L   #"-lh4",2(A0)
  60.     BNE     notlha
  61.     x:=2
  62. notlha:
  63.     CMP.W   #$1A08,(A0)
  64.     BNE     notarc
  65.     x:=3
  66. notarc:
  67.     CMP.L   #$4C5A5800,(A0)
  68.     BNE     notlzx
  69.     x:=4
  70. notlzx:
  71.     IF (chkarj(arg))=0 THEN x:=5
  72.  
  73.     MOVE.L  buf,A0
  74.     CMP.L   #$5A4F4F20,(A0)
  75.     BNE     notzoo
  76.     x:=6
  77. notzoo:
  78.     IF x=0
  79.         WriteF('Error: Unknown archive type\n')
  80.         RETURN 1
  81.     ENDIF
  82.  
  83.     StringF(comand,'\s "\s"',cmd[x].type,arg)
  84.     Execute(comand,0,0)
  85.  
  86. ENDPROC 0
  87.  
  88. PROC chk(name)
  89.     MOVE.L  name,A0
  90.     CMP.B   #$22,(A0)
  91.     BEQ     doit
  92.     RETURN 1
  93. doit:
  94.     MOVE.L  A0,A1
  95.     ADDQ.L  #1,A1
  96. fix:
  97.     MOVE.B  (A1)+,(A0)+
  98.     CMP.B   #$22,(A1)
  99.     BNE     fix
  100.     MOVE.B  #0,(A0)
  101.     RETURN 0
  102. ENDPROC
  103. PROC banner()
  104.     MOVEM.L D0-D7/A0-A6,-(A7)
  105.     MOVE.L  dosbase,A6
  106.     JSR     -60(A6)
  107.     MOVE.L  D0,D1
  108.     LEA.L   ban(PC),A0
  109.     MOVE.L  A0,D2
  110.     LEA.L   bas(PC),A1
  111.     SUB.L   A0,A1
  112.     MOVE.L  A1,D3
  113.     JSR     -48(A6)
  114.     MOVEM.L (A7)+,D0-D7/A0-A6
  115. ENDPROC
  116. PROC chkarj(name)
  117.     UpperStr(name)
  118.     MOVE.L  name,A0
  119. fipu:
  120.     CMP.B   #".",(A0)
  121.     BEQ     pufound
  122.     CMP.B   #0,(A0)+
  123.     BNE     fipu
  124. dsa:
  125.     RETURN 1
  126. pufound:
  127.     CMP.L   #".ARJ",(A0)
  128.     BNE     dsa
  129. ENDPROC 0
  130.  
  131. ban:    CHAR $1b,$5b,'41m',$1b,$5b,'32mLx v1.0a By DarkSpirit 1995',$1b,$5b,'0m',$a,$a,0
  132. bas:    CHAR 0,'$VER: Lx v1.0a (17.04.95)',0
  133.